Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
hoist-non-react-statics
Advanced tools
Copies non-react specific statics from a child component to a parent component
The hoist-non-react-statics package is used to copy non-react specific statics from a child component to a parent component. This is often used in higher-order component (HOC) patterns, where the HOC wraps a child component but needs to expose the same static methods as the child.
Hoisting non-react statics
This feature allows you to automatically copy static methods from a child component to a parent component, which is useful when creating higher-order components that should not interfere with the static methods of the wrapped component.
import hoistNonReactStatics from 'hoist-non-react-statics';
function enhance(WrappedComponent) {
class Enhance extends React.Component {
/* ... */
}
hoistNonReactStatics(Enhance, WrappedComponent);
return Enhance;
}
// Usage
// If WrappedComponent had static method foo(), Enhance will also have it.
While not directly related to hoisting statics, this plugin removes propTypes from React components in production builds, which can be a complementary step when optimizing higher-order components.
Copies non-react specific statics from a child component to a parent component.
Similar to Object.assign
, but with React static keywords blacklisted from
being overridden.
$ npm install --save hoist-non-react-statics
import hoistNonReactStatics from 'hoist-non-react-statics';
hoistNonReactStatics(targetComponent, sourceComponent);
If you have specific statics that you don't want to be hoisted, you can also pass a third parameter to exclude them:
hoistNonReactStatics(targetComponent, sourceComponent, { myStatic: true, myOtherStatic: true });
See this explanation from the React docs.
Compatible React Version | hoist-non-react-statics Version |
---|---|
16.3+ | >= 2.5.0 |
0.13-16.2 | >= 1.0.0 |
This package uses Object.defineProperty
which has a broken implementation in IE8. In order to use this package in IE8, you will need a polyfill that fixes this method.
This software is free to use under the Yahoo Inc. BSD license. See the LICENSE file for license text and copyright information.
Third-party open source code used are listed in our package.json file.
FAQs
Copies non-react specific statics from a child component to a parent component
The npm package hoist-non-react-statics receives a total of 16,516,488 weekly downloads. As such, hoist-non-react-statics popularity was classified as popular.
We found that hoist-non-react-statics demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.